#include "MereUI.hpp"

#include "VueGraphique.hpp"

#include <QtGui/QLayout>

#include <QtGui/QGraphicsScene>
#include <QtGui/QGraphicsView>

#include <QtGui/QResizeEvent>

#include <QtCore/QDebug>

MereUI::MereUI( QWidget* parent )
    : QWidget( parent ), Composants( ), Agencements( )
{
    Scene = new QGraphicsScene( 0., 0., 480., 330., this );
    Visualisation = new VueGraphique( Scene, this );
    Visualisation -> setGeometry( 0., 0., 500., 350. );

    connect( Visualisation, SIGNAL( tailleChangee(QResizeEvent*) ),
             this, SLOT( echelleAffichage(QResizeEvent *) ) );
}

MereUI::~MereUI()
{
    foreach( QLayout * layout, Agencements )
    {
        delete layout;
        layout = 0;
    }

    Agencements . clear();
}

void MereUI::echelleAffichage(QResizeEvent * event)
{
    QSize ancienne( event -> oldSize() ), nouvelle( event -> size() );

//    qDebug() << "MereUI::echelleAffichage ## Ancienne taille : " << ancienne;
//    qDebug() << "MereUI::echelleAffichage ## Nouvelle taille : " << nouvelle;

    double rapportH( double( nouvelle.height() ) / double( ancienne.height() ) ),
            rapportV( double( nouvelle.width() ) / double( ancienne.width() ) );

    double rapport( std::min( rapportH, rapportV ) );

//    qDebug() << "Rapport H = " << rapportH << ", rapportV = " << rapportV
//             << " => on envoie " << rapport;

    if ( rapport < 0. ) return;
    if ( rapport != rapport ) return;

    emit( echelleChangee( rapport ) );
}
